package com.mediacloud.app.newsmodule.fragment.baoliao;

//import android.app.Activity;
//import android.content.Context;
//import android.graphics.Rect;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.ViewTreeObserver;
//import android.widget.AbsListView;
//import android.widget.FrameLayout;
//import android.widget.ListView;
//import android.widget.RelativeLayout;
//import android.widget.ScrollView;
//
//import androidx.core.widget.NestedScrollView;
//import androidx.recyclerview.widget.RecyclerView;
//
//import com.mediacloud.app.model.OnCommentRemove;
//import com.mediacloud.app.cloud.ijkplayersdk.video.VideoPlayer;
//import com.mediacloud.app.newsmodule.model.VideoPlayObj;
//import com.mediacloud.app.newsmodule.model.VideoPlayerListenerImpl;
//import com.mediacloud.app.newsmodule.utils.KillMusicUtils;
//import com.mediacloud.app.newsmodule.utils.VideoAddressGet;
//import com.mediacloud.app.reslib.enums.AppFactoryGlobalConfig;
//
//import org.json.JSONArray;
//import org.json.JSONObject;

/**
 * Created by yoake on 2018/3/22.
 */

public class BaoLiaoVideoListPlayerUtil {

//    private Context context;
//    private VideoPlayer mPlayer;
//    private Object mark = System.currentTimeMillis();
//    private View listView;
//    private RelativeLayout container;
//    private View rootView;
//    public View mengban;
//
//    public BaoLiaoVideoListPlayerUtil(Context context, View listView) {
//        this.context = context;
//        this.listView = listView;
//        initPlayer();
//        setVideoPlayerListener();
//        setListViewOnScrollListener();
//    }
//
//    private void initPlayer() {
//        mPlayer = new VideoPlayer(context);
//       // mPlayer.hideButtonBack();
//        mPlayer.allowHardDecode=false;
//        mPlayer.setNonWifiTipsMainColor(AppFactoryGlobalConfig.getAppServerConfigInfo(context).getMainColor());
//        mPlayer.setDamuEnable(false);
//        mPlayer.setAutoPlay(true);
//        mPlayer.toggleFullScreenEnable(false);
////        mPlayer.setFullScreenBtnVisible(View.VISIBLE);
//      //  mPlayer.showShareIcon(View.GONE);
//       // mPlayer.showSmallTitle(View.GONE);
//        mPlayer.setSmallView(View.GONE);
//        mPlayer.toggleFullScreenEnable(false);
//      //  mPlayer.setvideoQualityTitleViseble(View.GONE);
//        mPlayer.controlBarViewControl.showReplayBtn();
//        mPlayer.showPlayCenterButton(false);
//    }
//
//
//    /**
//     * 设置播放器的容器
//     *
//     * @param container 播放器的容器
//     */
//    public void setPlayerContainer(View rootView, RelativeLayout container, View view) {
//        if (this.mengban != null && this.mengban != view) this.mengban.setVisibility(View.VISIBLE);
//        this.mengban = view;
//        if (mPlayer == null)
//            return;
//        mPlayer.stop(true);
//        this.container = container;
//
//        this.rootView = rootView;
//        if (mPlayer.getParent() != null) {
//            RelativeLayout rl = (RelativeLayout) mPlayer.getParent();
//            rl.removeView(mPlayer);
//        }
//        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
//
//        this.container.addView(mPlayer, params);
//    }
//
//    /**
//     * 释放资源，移除父布局
//     */
//    public void stopPlay() {
//        if (mPlayer != null && mPlayer.getParent() != null) {
//            ViewGroup rl = (ViewGroup) mPlayer.getParent();
//            if (mPlayer != null)
//                mPlayer.stop(true);
//            rl.removeView(mPlayer);
//        }
//    }
//
//    public void pausePlay() {
//        if (mPlayer != null) {
//            mPlayer.pause();
//        }
//    }
//    int mScrollState;
//    /**
//     * 监听ListView 滚动
//     */
//    private void setListViewOnScrollListener() {
//        if(listView==null)
//            return;
//        if(listView instanceof RecyclerView)
//        {
//            ((RecyclerView)listView).addOnScrollListener(new RecyclerView.OnScrollListener() {
//                @Override
//                public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
//                    super.onScrollStateChanged(recyclerView, newState);
//                    mScrollState = newState;
//                }
//
//                @Override
//                public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
//                    super.onScrolled(recyclerView, dx, dy);
//                    onScrolledHandle();
//                }
//            });
//        }
//        else if(listView instanceof ScrollView)
//        {
//            listView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
//                @Override
//                public void onScrollChanged() {
//                    onScrolledHandle();
//                }
//            });
//        }
//        else if(listView instanceof NestedScrollView) {
//            ((NestedScrollView) listView).setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener()
//            {
//
//                @Override
//                public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY)
//                {
//                    onScrolledHandle();
//                }
//            });
//        }
//        else if(listView instanceof ListView)
//        {
//            ((ListView) listView).setOnScrollListener(new AbsListView.OnScrollListener() {
//                @Override
//                public void onScrollStateChanged(AbsListView view, int scrollState) {
//
//
//                }
//
//                @Override
//                public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//                    onScrolledHandle();
//                }
//            });
//        }
//    }
//    Rect rect=new Rect();
//    private void onScrolledHandle()
//    {
//        if(rootView==null||listView==null)
//            return;
//        rect.set(rootView.getLeft(), rootView.getTop(), listView.getMeasuredWidth(), listView.getMeasuredHeight());
//        if(!container.isShown()||!container.getLocalVisibleRect(rect))
//        {
//            stopPlay();
//        }
//    }
//
//
//    public void setVideoData(JSONObject video) {
//        KillMusicUtils.stopAudioPlay(context);
//        if (video != null) {
//
//            mPlayer.stop();
//            mPlayer.setErrorViewVisible(View.GONE);
//            try {
//
//                String poster = video.optString("poster", "");
//                mPlayer.setPoster(poster,AppFactoryGlobalConfig.getDefaultImageLoadDrawable(),AppFactoryGlobalConfig.ServerAppConfigInfo.OtherConfig.img_cut);
//                JSONArray tsAddress = VideoAddressGet.getAddress(video);
//
//                VideoPlayObj videoPlayObj = new VideoPlayObj();
//                String cdnEncypt = video.optString("cdnConfigEncrypt");
//                videoPlayObj.setCdn_iv(AppFactoryGlobalConfig.ServerAppConfigInfo.OtherConfig.vms_cdn_iv);
//                videoPlayObj.setCdn_key(AppFactoryGlobalConfig.ServerAppConfigInfo.OtherConfig.vms_cdn_key);
//                videoPlayObj.setTitle("");
//                videoPlayObj.setVID("");
//                for (int i = 0; i < tsAddress.length(); i++) {
//                    JSONObject line = tsAddress.optJSONObject(i);
//                    VideoPlayObj.VideoLineItem lineItem = new VideoPlayObj.VideoLineItem();
//                    lineItem.setAddress(line.optString("url"));
//                    lineItem.setQuality(line.optString("title"));
//                    lineItem.setCdnEncypt(cdnEncypt);
//                    videoPlayObj.getMediaItem().add(lineItem);
//                }
//                mPlayer.getMediaObjs().clear();
//                mPlayer.addMediaObjs(videoPlayObj);
//                if (videoPlayObj.getMediaItem().size() > 0) {
//                    mPlayer.showLoadingView();
//                    mPlayer.playVideobj(0);
//                }
//            } catch (Exception e) {
//                e.printStackTrace();
//                mPlayer.setErrorViewVisible(View.VISIBLE);
//            }
//        } else {
//            mPlayer.setErrorViewVisible(View.VISIBLE);
//        }
//    }
//
//    /**
//     * 设置播放器各种监听
//     */
//    private void setVideoPlayerListener() {
//
//        mPlayer.setOnPlayerListener(new VideoPlayerListenerImpl() {
//
//            @Override
//            public void onResume(int currentMediaIndex) {
//                super.onResume(currentMediaIndex);
//                if (playListener!= null)
//                    playListener.setPlay(true);
//            }
//
//            @Override
//            public void onpause(int currentMediaIndex) {
//                super.onpause(currentMediaIndex);
//                if (playListener!= null)
//                    playListener.setPlay(false);
//            }
//
//            @Override
//            public void oncomplete(int currentMediaIndex) {
//                super.oncomplete(currentMediaIndex);
//                if (mPlayer.isFullScreen()) {
//                    mPlayer.toggleFullScreen();
//                }
//                mPlayer.postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        stopPlay();
//                    }
//                }, 800);
//            }
//
//            @Override
//            public void ontoggleFullScreen(int currentMediaIndex, boolean isFullScreen) {
//                super.ontoggleFullScreen(currentMediaIndex, isFullScreen);
//                if (isFullScreen) {
//                    FrameLayout rootView = (FrameLayout) ((Activity) context).getWindow().getDecorView();
//                    ViewGroup parent = (ViewGroup) mPlayer.getParent();
//                    FrameLayout.LayoutParams frameLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
//                    parent.removeView(mPlayer);
//                    rootView.addView(mPlayer, frameLayoutParams);
//                } else {
//                    if (mPlayer != null && mPlayer.getParent() != null) {
//                        ViewGroup parent = (ViewGroup) mPlayer.getParent();
//                        parent.removeView(mPlayer);
//                    }
//                    if (mPlayer != null) {
//                        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
//                        container.addView(mPlayer, params);
//                    }
//                }
//            }
//
//            @Override
//            public void onPrepared(int currentMediaIndex) {
//                super.onPrepared(currentMediaIndex);
//                mPlayer.toggleFullScreenEnable(true);
//                if (playListener!= null)
//                 playListener.setPlay(true);
//            }
//        });
//
//    }
//
//    public void onDestroy() {
//        if (mPlayer != null) {
//            mPlayer.stop(true);
//            mPlayer.release();
//            mPlayer = null;
//        }
//    }
//
//    public VideoPlayer getPlayer() {
//        return mPlayer;
//    }
//
//    public void setVideoData(String poster,String video) {
//        KillMusicUtils.stopAudioPlay(context);
//        if (video != null) {
//
//            mPlayer.stop();
//            mPlayer.setErrorViewVisible(View.GONE);
//            try {
//
//                mPlayer.setPoster(poster,AppFactoryGlobalConfig.getDefaultImageLoadDrawable(),AppFactoryGlobalConfig.ServerAppConfigInfo.OtherConfig.img_cut);
//
//                VideoPlayObj videoPlayObj = new VideoPlayObj();
//                VideoPlayObj.VideoLineItem lineItem = new VideoPlayObj.VideoLineItem();
//                lineItem.setAddress(video);
//                lineItem.setQuality("标清");
//                videoPlayObj.getMediaItem().add(lineItem);
//
//                mPlayer.getMediaObjs().clear();
//                mPlayer.addMediaObjs(videoPlayObj);
//                if (videoPlayObj.getMediaItem().size() > 0) {
//                    mPlayer.showLoadingView();
//                    mPlayer.playVideobj(0);
//                }
//            } catch (Exception e) {
//                e.printStackTrace();
//                mPlayer.setErrorViewVisible(View.VISIBLE);
//            }
//        } else {
//            mPlayer.setErrorViewVisible(View.VISIBLE);
//        }
//    }
//
//    public interface playCallBack{
//        void setPlay(boolean play);
//    }
//    private playCallBack playListener;
//    public void setPlayCallBack(playCallBack callBack){
//        playListener = callBack;
//    }
}